package com.tqz.rc.api;

import com.tqz.rc.common.constant.DefaultValueConstant;

/**
 * <p>客户端实例心跳对象。
 *
 * @author tianqingzhao
 * @since 2021/8/30 17:24
 */
public class BeatInfo {

    /**
     * 命名空间。
     */
    private String namespaceId = DefaultValueConstant.DEFAULT_NAMESPACE_ID;

    /**
     * 服务名称。
     */
    private String serviceName;

    /**
     * 实例所在的集群名称。
     */
    private String clusterName = DefaultValueConstant.DEFAULT_CLUSTER_NAME;


    /**
     * 实例的ip。
     */
    private String ip;

    /**
     * 实例的端口号。
     */
    private int port;

    /**
     * 心跳周期。
     */
    private long period;

    /**
     * 是否标记停止，同一个服务会注册多次任务，使用该字段进行标识。参考Nacos的fix #1733。
     */
    private volatile boolean stopped;

    public String getNamespaceId() {
        return namespaceId;
    }

    public void setNamespaceId(String namespaceId) {
        this.namespaceId = namespaceId;
    }

    public String getServiceName() {
        return serviceName;
    }

    public void setServiceName(String serviceName) {
        this.serviceName = serviceName;
    }

    public String getClusterName() {
        return clusterName;
    }

    public void setClusterName(String clusterName) {
        this.clusterName = clusterName;
    }

    public String getIp() {
        return ip;
    }

    public void setIp(String ip) {
        this.ip = ip;
    }

    public int getPort() {
        return port;
    }

    public void setPort(int port) {
        this.port = port;
    }

    public long getPeriod() {
        return period;
    }

    public void setPeriod(long period) {
        this.period = period;
    }

    public boolean isStopped() {
        return stopped;
    }

    public void setStopped(boolean stopped) {
        this.stopped = stopped;
    }
}
